﻿/*******************************************************************************
 * Copyright @ 2017 YunSpace.Framework 版权所有
 * Author: GaoTang
 * Description: YunSpace 快速开发平台
 * Website：http://www.yunspace.com.cn
*********************************************************************************/
#region USING SYSTEM
using System.Collections.Generic;
using YunSpace.Data;
using YunSpace.Domain.ViewModel.MiniSite;
using YunSpace.Domain.Entity.SiteLibraryManage;
using YunSpace.Domain.ViewModel.StatisticalForm;
using YunSpace.Domain.ViewModel.SiteMgr.Pdf;

#endregion

namespace YunSpace.Domain.IRepository.SiteLibraryManage
{
    public interface ISiteRepository : IRepositoryBase<SiteEntity>
    {
        /// <summary>
        /// 获取指定的Ids
        /// </summary>
        List<SiteEntity> GetSitesByIds(List<string> ids);

        /// <summary>
        /// 场地列表
        /// </summary>
        List<SiteEntity> GetSites(string lastId, int count);

        List<SiteHotActionModel> GetHotSites(string lastId, int count);
        List<SiteHotActionModel> GetHotSitesByIds(List<string> ids);

        /// <summary>
        /// 获取场地地图列表信息
        /// </summary>
        /// <returns></returns>
        List<SiteMapDto> GetSiteMaps();

        /// <summary>
        /// 获取场地柱状图列表信息
        /// </summary>
        /// <param name="provinceId"></param>
        /// <returns></returns>
        List<SiteBarDto> GetSiteBarData(string provinceId);

        /// <summary>
        /// 获取场地柱状图和折线列表信息
        /// </summary>
        /// <param name="provinceId"></param>
        /// <returns></returns>
        List<SiteBarDto> GetSiteBarAndLineData(string provinceId);

        #region Pdf 信息

        /// <summary>
        /// 获取创建场地 PDF 模型
        /// </summary>
        /// <param name="siteId"></param>
        /// <returns></returns>
        CreateSitePdfDto GetSitePdfDto(string siteId);

        /// <summary>
        /// 获取创建场地 PDF 模型
        /// </summary>
        /// <param name="siteId"></param>
        /// <returns></returns>
        List<SpaceMarketAttrPdfDto> GetSpaceMarketAttrPdfDtos(string siteId);

        /// <summary>
        /// 获取创建空间 PDF 模型
        /// </summary>
        /// <param name="siteId"></param>
        /// <returns></returns>
        List<SpacePdfDto> GetSpacePdfDtos(string siteId);

        /// <summary>
        /// 获取活动案例 PDF 模型
        /// </summary>
        /// <param name="siteId"></param>
        /// <param name="spaceId"></param>
        /// <returns></returns>
        List<ActivitiesCasePdfDto> GetActivitiesCasePdfDtos(string siteId, string spaceId);

        /// <summary>
        /// 获取图片信息 PDF 模型
        /// </summary>
        /// <param name="photoableId"></param>
        /// <param name="photoableType"></param>
        /// <returns></returns>
        List<PhotoPdfDto> GetPhotoPdfDtos(string photoableId, string photoableType);

        /// <summary>
        /// 获取空间额外信息 PDF 模型
        /// </summary>
        /// <returns></returns>
        SpaceSupplementPdfDto GetSpaceSupplementPdfDtos(string spaceId);

        #endregion Pdf 信息


    }
}

